import Vue from 'vue'
import Vuex from 'vuex'

import user from './modules/user'
import getting from './modules/getting'
Vue.use(Vuex)

export default new Vuex.Store({
  // strict:true,//开启语法严格模式

  state: {
    count: 101,
    name: '嘿嘿jack',
    list: [1, 2, 3, 4, 5, 6, 7, 8, 9]
  },
  getters: {
    total (state) {
      return state.list.reduce((sum, item) => sum + item, 0)
    }
  },
  mutations: {
    //更改数据 ===  state中的数据只能通过mutations更改==同步操作
    addHandle (state, obj) {
      console.log(state.count)
      // state.count += 10
      state.count += obj.n

    },
    addHandle1 (state, m) {
      // console.log(state.count)
      // state.count += 10
      state.count += m

    }
  },
  actions: {
    //异步操作
    //syncHandle 里有一个 形参 
    //形参就是 this.$store 能使用$store中的方法
    syncHandle (context, m) {
      setTimeout(() => {
        console.log(context, '我是mutaions的异步函数');
        context.commit('addHandle1', m)
      }, 1000);
    }
  },
  modules: {
    user,
    getting
    //获取模块中的数据公式: this.$store.state.模块名.找数据
  }
})
